# 需求:
# 1. 定义一个函数 sum_numbers，可以接收的 任意多个整数
# 2. 功能要求：将传递的 所有数字累加 并且返回累加结果
# 分析：
# 1.定义函数（有参数，并且个数不确定）
def sum_numbers(*args):
    # 一个变量args接收了一堆数据（元组类型数据）如：args = (1,2,3,4,5)
    # 定义初始结果变量
    result = 0
    # 先取出元素
    for i in args:
        # 在累加求和
        result += i
    # 返回结果
    return f"累加的结果是：{result}"
# 2.调用函数
aa = sum_numbers(1,2,3,4,5,6)
print(aa)

# 分析：
# 1.定义函数（有参数，并且个数不确定）
def sum_numbers(*args):
    """
    累计求和返回结果
    :param args: 多个参数
    :return: 返回计算结果
    """
    # 多值参数的结果元组，所有数据累计求和：对于元组里面所有元素累计求和
    # 元组元素取出来，然后分别累计求和
    result = 0
    for i in args:
        result += i  # result = result + i
    return result

# 1.普通函数实现两个数字求和
# 定义函数
def demo(a, b):
    result = a + b
    # 返回结果
    return result
# 调用函数
print(demo(10, 20))
# 2.匿名函数实现两个数字求和
result = lambda a, b: a + b
# 使用匿名函数
print(result(10, 20))

# 1. 已知用户信息数据如下:
user_list = [
{'name': '张三', 'age': 22, 'title': '测试工程师'},
{'name': '李四', 'age': 24, 'title': '开发工程师'},
{'name': '王五', 'age': 21, 'title': '测试工程师'}
]
# 排序:按照人的年龄信息排序
# 参数 key : 必须传入的函数，其作用是描述按照元素的哪个指标排序
# 参数 reverse ： 排序方式（升序/降序）
# 年龄指标取出来？
# 假设给我的第一个字典元素是： x = {'name': '张三', 'age': 22, 'title': '测试工程师'}
# 获取年龄指标？ x['age'] 或者 x.get("age")
# 1.需要知道字典的变量名 ‐‐> 字典名会变？ ‐‐> 变量 ‐‐> 参数
# 2.需要返回年龄的值 ‐‐> 获取年龄的表达式
# 结论：需要匿名函数实现
keys = lambda x:x.get("age") # 这个x就是列表的每个元素
# 1.直接进行排序：升序
user_list.sort(key=keys)
# 打印原始列表
print(user_list)
# 2.降序
user_list.sort(key=keys,reverse=True)
# 打印原始列表
print(user_list)
